Reactive Variability Realization with Test Driven Development and Refactoring
نویسندگان
چکیده
Software product line is a practice that has proven its advantages since it can offer to a company the reduction of time to market, the decrease of development costs, the increase of productivity and the improvement of the final product quality. However, this practice requires a high initial investment and offers long-term risks to dynamic markets where changes are difficult to predict. One of these markets is the mobile application development, which presents a growing demand, with smartphone and tablets having already surpassed sales of PCs and notebooks. Currently, proposals bring the advantages of software product line for dynamic markets through the use of agile software development practices, which is called Agile Product Line Engineering (APLE). This paper investigates the use of test-driven development (TDD) and refactoring techniques for performing reactive variability in APLE. The variability mechanism chosen is the configuration file that allows achieving more than one platform, an important problem in mobile application development. In that manner, new products can be built as needed, without the high upfront investment, but with a code easier to maintain. KeywordsSoftware product line, test-driven development, refactoring, variability realization
منابع مشابه
Extreme Product Line Engineering - Refactoring for Variability: A Test-Driven Approach
Software product lines families of similar but not identical software products need to address the issue of feature variability. That is, a single feature might require various implementations for different customers. Also, features might need optional extensions that are needed by some but not all products. Software product line engineering manages variability by conducting a thorough domain a...
متن کاملRefactoring of Acceptance Tests in Visual Studio
Executable Acceptance Test Driven Development (EATDD) is an extension of Test Driven Development (TDD). TDD requires that unit tests are written before any code. EATDD pushes this TDD paradigm to the customer level by using Acceptance Tests to specify the requirements and features of a system. The Acceptance Tests are mapped to a Fixture that permits the automated execution of the tests. With o...
متن کاملA Semi-Automatic Approach for Test Case Traceability in a Test-Driver Development
Test-first strategy and code refactoring are both important features in Extreme Programming methodology. In the test-first strategy, test cases are designed before system implementation. If we want to improve certain non-functional attributes of the programs which are revised by refactoring, the original test cases may be broken or inefficient for testing the new programs. In this paper, we pro...
متن کاملComparative Study of Test Driven Development with Traditional Techniques
Test-Driven Development is the evolutionary approach in which unit test cases are incrementally written prior to code implementation. In our research, we will be doing comparative study of Test Driven development with traditional techniques through literature study as well as industrial survey. Through this research, we would like to find out the factors encouraging the use of Test Driven Devel...
متن کاملTowards Software Configuration Management for Test-Driven Development
Test-Driven Development is a technique where each change to the observable behavior of a program is motivated by a failing test. High design quality is maintained by continuous small design improvements called refactorings. While some integrated development environments support automated refactoring, they do not handle problems that occur if refactorings are used in development teams or on publ...
متن کامل